Unit Testing এবং Debugging হল সফটওয়্যার ডেভেলপমেন্টের দুটি গুরুত্বপূর্ণ দিক, যা অ্যাপ্লিকেশনের কোডের গুণগত মান নিশ্চিত করতে সাহায্য করে। ExtJS তে Unit Testing এবং Debugging করার জন্য কিছু নির্দিষ্ট পদ্ধতি এবং সরঞ্জাম রয়েছে, যা ডেভেলপারদের কোড ত্রুটি শনাক্ত এবং সেগুলি সমাধান করতে সহায়তা করে।
Unit Testing হল একটি প্রক্রিয়া যার মাধ্যমে কোডের প্রতিটি ইউনিট বা ফাংশনকে আলাদাভাবে পরীক্ষা করা হয়। ExtJS তে unit testing করার জন্য সাধারণত Jasmine অথবা QUnit ব্যবহৃত হয়। এগুলি JavaScript টেস্টিং ফ্রেমওয়ার্ক, যা এক্সটিজেএস অ্যাপ্লিকেশন টেস্ট করতে সাহায্য করে।
Step 1: Jasmine এর মাধ্যমে ExtJS কোড টেস্ট করা:
describe('MyApp.view.MyPanel', function() {
var panel;
beforeEach(function() {
panel = Ext.create('MyApp.view.MyPanel', {
title: 'Test Panel'
});
});
it('should have the correct title', function() {
expect(panel.getTitle()).toEqual('Test Panel');
});
it('should be visible by default', function() {
expect(panel.isVisible()).toBe(true);
});
afterEach(function() {
panel.destroy();
});
});
এখানে:
beforeEach
: প্রতিটি টেস্টের আগে এক্সটিজেএস কম্পোনেন্ট তৈরি করা হয়।it
: প্রত্যেকটি টেস্ট কেস, যা একক ফাংশনের পরীক্ষা করে।expect
: টেস্টের মান যাচাই করার জন্য ব্যবহৃত হয়।afterEach
: টেস্ট শেষে অবজেক্ট ধ্বংস করা হয়।Step 2: Jasmine এবং Karma ইন্টিগ্রেশন:
Karma ব্যবহার করে Jasmine টেস্ট রান করা যায়। Karma তে Jasmine ফ্রেমওয়ার্ক কনফিগার করার জন্য একটি কনফিগারেশন ফাইল তৈরি করতে হয়।
karma init
এটি আপনাকে Karma কনফিগারেশন ফাইল তৈরি করতে সাহায্য করবে এবং Jasmine টেস্ট রান করতে সক্ষম করবে।
Sencha Test হল ExtJS-এর জন্য একটি অফিসিয়াল টেস্টিং টুল, যা আপনাকে ExtJS কোডের টেস্ট কেস লিখতে এবং চালাতে সহায়তা করে। Sencha Test GUI অথবা কমান্ড লাইনের মাধ্যমে ব্যবহৃত হতে পারে এবং এটি End-to-End টেস্টিং সাপোর্ট প্রদান করে।
Sencha Test Example:
describe("MyApp.view.MyPanel", function() {
it("should create a panel with the correct title", function() {
var panel = Ext.create("MyApp.view.MyPanel", {
title: "Test Panel"
});
expect(panel.getTitle()).toBe("Test Panel");
});
});
Sencha Test ব্যবহার করলে:
Debugging হল কোডে ত্রুটি চিহ্নিত করার এবং সেগুলি সমাধান করার প্রক্রিয়া। ExtJS তে ডিবাগging করার জন্য কিছু সাধারণ পদ্ধতি ও সরঞ্জাম রয়েছে যা ডেভেলপারদের কোডের ত্রুটি শনাক্ত করতে সহায়তা করে।
ExtJS Console: ExtJS তে ডিবাগিং করার জন্য আপনি console.log() ব্যবহার করতে পারেন। এটা খুবই কার্যকরী একটি টুল যা আপনাকে কনসোলে তথ্য দেখতে সাহায্য করে।
Example:
Ext.create('Ext.panel.Panel', {
title: 'Test Panel',
width: 200,
height: 100,
renderTo: Ext.getBody(),
listeners: {
render: function(panel) {
console.log('Panel rendered with title: ' + panel.getTitle());
}
}
});
Browser Developer Tools: সব আধুনিক ব্রাউজারে Developer Tools রয়েছে (যেমন: Chrome DevTools), যা ডিবাগging করার জন্য খুবই শক্তিশালী সরঞ্জাম। আপনি breakpoints, step-through debugging, এবং watch variables ব্যবহার করে কোড লাইনে ত্রুটি খুঁজে বের করতে পারেন।
Example:
ExtJS Debug Mode: ExtJS তে Debug Mode সক্রিয় করা থাকে, যা আপনাকে কোডের সঠিক ইনফরমেশন প্রদান করে। Ext.enableFx
এবং Ext.log
এর মাধ্যমে আপনি বিস্তারিত লগ দেখতে পারেন।
Example:
Ext.Loader.setConfig({
enabled: true, // Enable debugging
paths: {
'MyApp': 'app'
}
});
Error Handling এর মাধ্যমে আপনি কোডের ত্রুটি ধরতে পারেন এবং ব্যবহারকারীকে সঠিক বার্তা দেখাতে পারেন। ExtJS এ এর জন্য try-catch
ব্লক এবং global error handling ব্যবহার করা হয়।
Ext.on('uncaughtexception', function(event) {
console.log('An uncaught exception occurred: ' + event);
return false; // Prevent the default error handling
});
এখানে:
uncaughtexception
ইভেন্ট ব্যবহার করে আপনি যে কোনো অ্যানকাউট এক্সেপশনকে সুনির্দিষ্টভাবে হ্যান্ডেল করতে পারেন।এই সরঞ্জাম এবং কৌশলগুলি ব্যবহারের মাধ্যমে, আপনি ExtJS অ্যাপ্লিকেশনগুলি সঠিকভাবে পরীক্ষা এবং ডিবাগ করতে পারবেন, যা অ্যাপ্লিকেশনের স্থিতিশীলতা এবং নিরাপত্তা নিশ্চিত করবে।
Unit Testing হল সফটওয়্যার ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ যা প্রতিটি ছোট ইউনিট বা ফাংশনের নির্ভরযোগ্যতা পরীক্ষা করে। ExtJS অ্যাপ্লিকেশনের ক্ষেত্রে, unit testing অ্যাপ্লিকেশনটির কার্যক্ষমতা এবং কম্পোনেন্টগুলো ঠিকঠাক কাজ করছে কিনা তা নিশ্চিত করতে সহায়ক।
ExtJS এ unit testing করার জন্য সাধারণত Jasmine, QUnit, অথবা Karma ব্যবহার করা হয়, যা জাভাস্ক্রিপ্ট টেস্টিং ফ্রেমওয়ার্ক এবং রানটাইম টেস্টিং টুলস হিসেবে ব্যবহৃত হয়। ExtJS নিজে Sencha Test নামক একটি টেস্টিং টুলও প্রদান করে, যা ExtJS অ্যাপ্লিকেশনগুলির জন্য unit test, functional test, এবং integration test চালাতে সাহায্য করে।
এই গাইডে আমরা ExtJS অ্যাপ্লিকেশনের জন্য Unit Testing কিভাবে করা যায় তা আলোচনা করব, এবং বিভিন্ন টেস্টিং টুল এবং ফ্রেমওয়ার্ক নিয়ে কিছু তথ্য প্রদান করব।
Sencha Test হল ExtJS অ্যাপ্লিকেশনের জন্য একটি টেস্টিং প্ল্যাটফর্ম যা অ্যাপ্লিকেশনের ইউআই এবং ফাংশনালিটি পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি ExtJS অ্যাপ্লিকেশনগুলির জন্য unit test, functional test, integration test ইত্যাদি চালাতে সহায়ক।
npm install -g @sencha/command
Unit Test Example with Sencha Test:
describe("MyApp.view.MyComponent", function() {
it("should initialize correctly", function() {
var component = Ext.create('MyApp.view.MyComponent');
expect(component).toBeDefined();
expect(component.getTitle()).toBe("Expected Title");
});
it("should call the handler function when button is clicked", function() {
var component = Ext.create('MyApp.view.MyComponent');
var button = component.down('button');
spyOn(component, 'onButtonClick');
button.fireEvent('click');
expect(component.onButtonClick).toHaveBeenCalled();
});
});
এখানে:
describe
ব্লকের মধ্যে পরীক্ষার উদ্দেশ্য এবং উপাদানটি দেওয়া হয়।it
ব্লকে টেস্ট কেস দেয়া হয়, যা পরীক্ষা করবে কম্পোনেন্ট বা ফাংশন ঠিকমতো কাজ করছে কিনা।spyOn
ব্যবহার করে কোনো ফাংশনের কল ট্র্যাক করা হয়।Jasmine হল একটি পপুলার টেস্টিং ফ্রেমওয়ার্ক যা জাভাস্ক্রিপ্ট ফাংশনের unit testing করতে ব্যবহৃত হয়। ExtJS অ্যাপ্লিকেশনে Jasmine ব্যবহার করতে, প্রথমে আপনার অ্যাপ্লিকেশন এবং টেস্ট ফাইলগুলোকে কনফিগার করতে হবে।
npm install --save-dev jasmine
spec/support/jasmine.json
ফাইল তৈরি করুন এবং সেখানে নিচের কনফিগারেশন যোগ করুন:
{
"spec_dir": "spec",
"spec_files": [
"spec/**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
]
}
describe("MyApp.model.User", function() {
it("should return the correct name", function() {
var user = Ext.create('MyApp.model.User', { name: "John Doe" });
expect(user.getName()).toBe("John Doe");
});
});
এখানে:
describe
: টেস্টের উদ্দেশ্য বা মডিউল বর্ণনা করে।it
: প্রত্যেকটি টেস্ট কেস লিখতে ব্যবহৃত হয়।expect
: টেস্টের ফলাফল যাচাই করতে ব্যবহৃত হয়।Karma হল একটি টেস্ট রানার, যা আপনার জাভাস্ক্রিপ্ট টেস্টিং ফ্রেমওয়ার্ক (যেমন Jasmine) চালাতে সহায়ক। Karma ব্যবহার করে আপনি ব্রাউজারের মধ্যে টেস্ট চালাতে পারেন এবং এটি স্বয়ংক্রিয়ভাবে আপনার কোডের পরিবর্তন ট্র্যাক করে।
npm install --save-dev karma karma-jasmine karma-chrome-launcher
karma.conf.js
ফাইল তৈরি করুন এবং সেখানে কনফিগারেশন সেট করুন:
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: [
'app/**/*.js',
'spec/**/*.spec.js'
],
browsers: ['Chrome'],
singleRun: true
});
};
karma start
এখানে, Karma আপনার টেস্ট ফাইলগুলোকে চালাবে এবং Chrome ব্রাউজারে তাদের পরীক্ষা করবে।
QUnit একটি জাভাস্ক্রিপ্ট টেস্টিং ফ্রেমওয়ার্ক যা ExtJS অ্যাপ্লিকেশনে ব্যবহৃত হতে পারে। এটি অ্যাপ্লিকেশনটির ইউনিট টেস্টিং করার জন্য একটি সিম্পল এবং কার্যকরী পদ্ধতি সরবরাহ করে।
npm install --save-dev qunit
QUnit.module("MyApp.model.User");
QUnit.test("Name should be correct", function(assert) {
var user = Ext.create('MyApp.model.User', { name: 'John Doe' });
assert.equal(user.getName(), 'John Doe', 'Name is correct');
});
QUnit Test এ:
QUnit.module
: পরীক্ষার মডিউল তৈরি করা হয়।QUnit.test
: নির্দিষ্ট টেস্ট কেস তৈরি করা হয়।assert.equal()
: একটি ভ্যালু যাচাই করে।Unit Testing এর মাধ্যমে আপনার ExtJS অ্যাপ্লিকেশন আরও নির্ভরযোগ্য এবং কার্যকরী হয়, এবং কোড রিফ্যাক্টরিং বা নতুন ফিচার অ্যাড করার সময় কোনো সমস্যা সৃষ্টি না হওয়ার সম্ভাবনা বৃদ্ধি পায়।
Jasmine এবং Siesta হল দুটি জনপ্রিয় JavaScript Testing Framework যা অ্যাপ্লিকেশনের কোডের unit tests, integration tests, এবং functional tests করার জন্য ব্যবহৃত হয়। এগুলির মাধ্যমে কোডের গুণগত মান নিশ্চিত করা যায় এবং বাগ চিহ্নিত করা সহজ হয়।
এখানে, আমরা Jasmine এবং Siesta এর মধ্যে পার্থক্য এবং কিভাবে এগুলি ব্যবহার করা যায়, তা নিয়ে আলোচনা করব।
Jasmine হল একটি Behavior Driven Development (BDD) টেস্টিং ফ্রেমওয়ার্ক যা JavaScript কোডের জন্য unit এবং integration tests লিখতে ব্যবহৃত হয়। এটি ব্যবহারকারীর আচরণ বা কার্যকলাপ (behavior) পরিমাপ করে টেস্ট লেখাকে সহজ এবং বোধগম্য করে তোলে।
Jasmine ইনস্টল করা: আপনি Jasmine কে NPM এর মাধ্যমে ইনস্টল করতে পারেন:
npm install --save-dev jasmine
Test Spec ফাইল তৈরি করা: Jasmine এর টেস্টগুলো সাধারণত spec নামক ফাইলে লেখা হয়।
spec.js:
describe("A suite", function() {
it("contains a passing test", function() {
expect(true).toBe(true);
});
it("should test addition", function() {
let sum = 1 + 1;
expect(sum).toBe(2);
});
});
এখানে:
describe
: একটি গ্রুপ তৈরি করে, যা টেস্টের একটি সেট বোঝায়।it
: একটি নির্দিষ্ট টেস্ট কেস যা অ্যাসারশনকে পরীক্ষা করে।expect
: একটি অ্যাসারশন যা একটি ফলাফল প্রত্যাশা করে, যেমন toBe
, toEqual
, toBeTruthy
ইত্যাদি।Jasmine রান করা: Jasmine টেস্ট চালানোর জন্য নিচের কমান্ডটি ব্যবহার করতে হবে:
npx jasmine
Siesta একটি আরও শক্তিশালী এবং ফিচার-পূর্ণ টেস্টিং ফ্রেমওয়ার্ক যা JavaScript এবং ExtJS অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা হয়। Siesta, সিম্পল এবং দ্রুত টেস্টিং পরিচালনার জন্য একটি সমৃদ্ধ API প্রদান করে। এটি GUI-ভিত্তিক টেস্ট, অ্যাসিঙ্ক্রোনাস টেস্ট এবং UI টেস্ট সাপোর্ট করে।
Test Spec ফাইল তৈরি করা: Siesta-এ টেস্ট লেখার জন্য একটি কাস্টম JavaScript ফাইল তৈরি করতে হবে।
spec.js:
StartTest(function(t) {
t.diag('Test Addition Function');
// Basic test for addition
var sum = 1 + 1;
t.is(sum, 2, '1 + 1 should be 2');
});
এখানে:
StartTest
: Siesta টেস্ট শুরু করার জন্য একটি ফাংশন।t.diag()
: টেস্টের নাম বা বিবরণ প্রদর্শন করে।t.is()
: অ্যাসারশন ফাংশন যা টেস্টের সঠিকতা যাচাই করে।Feature | Jasmine | Siesta |
---|---|---|
Type | BDD (Behavior Driven Development) | BDD এবং GUI Testing |
Support | JavaScript | JavaScript, ExtJS, UI Testing |
Asynchronous Testing | Support for async testing (AJAX, timers) | Native support for async and GUI testing |
UI Testing | No direct UI testing support | Full GUI testing capabilities |
Cross-Browser Support | Limited | Full cross-browser testing support |
Use Cases | Unit and functional testing | Full application testing (UI, ExtJS apps) |
Jasmine এবং Siesta উভয়ই শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক, তবে আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে আপনি এগুলোর মধ্যে যেকোনো একটি নির্বাচন করতে পারেন।
ExtJS-এ Component এবং Data Testing খুবই গুরুত্বপূর্ণ, কারণ অ্যাপ্লিকেশনটির ইউজার ইন্টারফেস (UI) এবং ডেটার সঠিকতা নিশ্চিত করতে হয়। Component Testing এবং Data Testing টেস্টিং পদ্ধতিগুলি ExtJS অ্যাপ্লিকেশনগুলোতে বাগ চিহ্নিত করতে এবং তাদের কার্যক্ষমতা নিশ্চিত করতে সহায়ক।
এই গাইডে, আমরা Component Testing এবং Data Testing এর বিস্তারিতভাবে আলোচনা করব এবং দেখব কীভাবে ExtJS অ্যাপ্লিকেশনে সেগুলিকে কার্যকরভাবে ব্যবহার করা যায়।
Component Testing হল ExtJS-এর বিভিন্ন UI কম্পোনেন্ট (যেমন প্যানেল, বাটন, টেক্সটফিল্ড ইত্যাদি) সঠিকভাবে কাজ করছে কি না তা যাচাই করার পদ্ধতি। এটি নিশ্চিত করতে সাহায্য করে যে, UI কম্পোনেন্টগুলি বিভিন্ন পরিস্থিতিতে সঠিকভাবে ইন্টারঅ্যাক্ট করছে এবং প্রতিক্রিয়া প্রদান করছে।
ExtJS কম্পোনেন্টের টেস্টিং করার জন্য, আপনি Jasmine ব্যবহার করতে পারেন। নিচে একটি সাধারণ Jasmine টেস্টিং উদাহরণ দেওয়া হলো, যেখানে একটি বাটন ক্লিক করার পর কিছু কার্যকলাপ পরীক্ষা করা হচ্ছে।
Component Testing উদাহরণ (Jasmine):
describe('Button Test', function() {
var button;
beforeEach(function() {
button = Ext.create('Ext.button.Button', {
text: 'Click Me',
handler: function() {
button.setText('Clicked');
}
});
});
it('should create a button with the correct text', function() {
expect(button.getText()).toBe('Click Me');
});
it('should change text when clicked', function() {
button.fireEvent('click');
expect(button.getText()).toBe('Clicked');
});
});
এখানে:
beforeEach
: টেস্টের আগে একটি নতুন বাটন তৈরি করা হয়েছে।it
: নির্দিষ্ট টেস্ট কেস তৈরি করা হয়েছে, যেখানে প্রথমে বাটনের টেক্সট পরীক্ষা করা হয় এবং পরে ক্লিক করার পর তার টেক্সট পরিবর্তন পরীক্ষা করা হয়।fireEvent('click')
: বাটনে ক্লিক ইভেন্ট ট্রিগার করা হচ্ছে।Data Testing হল ডেটা মডেল এবং স্টোর এর কার্যক্ষমতা পরীক্ষা করার পদ্ধতি। ExtJS অ্যাপ্লিকেশনগুলিতে ডেটা মডেল এবং স্টোরগুলি ডেটা সংরক্ষণ, পরিচালনা, এবং প্রদর্শন করে। ডেটা টেস্টিং এর মাধ্যমে আমরা নিশ্চিত করতে পারি যে ডেটা স্টোর সঠিকভাবে ডেটা লোড, আপডেট এবং ডিলিট করছে।
ExtJS-এ Store এবং Model ব্যবহৃত হয় ডেটা পরিচালনার জন্য, এবং এদের টেস্ট করা খুবই গুরুত্বপূর্ণ। আমরা Jasmine ব্যবহার করে Model এবং Store এর টেস্টিং করতে পারি।
Data Model Testing উদাহরণ (Jasmine):
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['name', 'email']
});
describe('User Model Test', function() {
var user;
beforeEach(function() {
user = Ext.create('User', {
name: 'John Doe',
email: 'john.doe@example.com'
});
});
it('should create a user with the correct name', function() {
expect(user.get('name')).toBe('John Doe');
});
it('should create a user with the correct email', function() {
expect(user.get('email')).toBe('john.doe@example.com');
});
});
এখানে:
Ext.create('User')
ব্যবহার করে একটি নতুন User মডেল তৈরি করা হয়েছে।it
ব্লকের মাধ্যমে, মডেলের ফিল্ডের সঠিকতা পরীক্ষা করা হয়েছে।Data Store Testing উদাহরণ (Jasmine):
Ext.define('UserStore', {
extend: 'Ext.data.Store',
model: 'User',
data: [
{ name: 'John Doe', email: 'john.doe@example.com' },
{ name: 'Jane Smith', email: 'jane.smith@example.com' }
]
});
describe('User Store Test', function() {
var store;
beforeEach(function() {
store = Ext.create('UserStore');
});
it('should load the correct number of records', function() {
expect(store.getCount()).toBe(2);
});
it('should load the correct user email', function() {
var firstUser = store.getAt(0);
expect(firstUser.get('email')).toBe('john.doe@example.com');
});
});
এখানে:
UserStore
হল একটি ডেটা স্টোর যা User
মডেল ব্যবহার করে ডেটা ধারণ করে।getCount()
ব্যবহার করে ডেটার সংখ্যা পরীক্ষা করা হয়েছে এবং getAt(0)
ব্যবহার করে প্রথম রেকর্ডের ইমেইল পরীক্ষা করা হয়েছে।End-to-End (E2E) Testing হল পুরো অ্যাপ্লিকেশনটিকে একটি বাস্তব ইউজারের মতো পরীক্ষা করার পদ্ধতি। এর মাধ্যমে আপনি নিশ্চিত করতে পারেন যে আপনার অ্যাপ্লিকেশন সঠিকভাবে কাজ করছে এবং সমস্ত UI কম্পোনেন্ট সঠিকভাবে একসাথে কাজ করছে।
Siesta একটি GUI টেস্টিং ফ্রেমওয়ার্ক যা ExtJS অ্যাপ্লিকেশনের জন্য সম্পূর্ণ ইন্টারফেস এবং ডেটা টেস্টিং সাপোর্ট করে। Siesta দিয়ে আপনি UI, কম্পোনেন্ট, এবং ডেটার সমন্বিত টেস্টিং করতে পারেন।
Siesta E2E Testing উদাহরণ:
StartTest(function(t) {
t.diag('Testing Button Click');
// Create a button
var button = Ext.create('Ext.button.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
handler: function() {
button.setText('Clicked');
}
});
// Simulate button click and check the change
t.click(button);
t.is(button.getText(), 'Clicked', 'Button text changes after click');
});
এখানে, Siesta ব্যবহার করে একটি বাটন তৈরি করা হয়েছে এবং বাটন ক্লিকের পর তার টেক্সট পরিবর্তন হওয়া পরীক্ষা করা হয়েছে।
ExtJS এ Component Testing এবং Data Testing নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপ্লিকেশন সঠিকভাবে কাজ করছে এবং ইউজার ইন্টারফেস এবং ডেটার মধ্যে কোনো সমস্যা নেই।
Debugging বা ত্রুটি শনাক্তকরণ এবং সমাধান করা প্রতিটি ডেভেলপার ও টেস্টারের জন্য একটি গুরুত্বপূর্ণ কাজ। যখন আপনি ExtJS অ্যাপ্লিকেশন তৈরি করেন, তখন বিভিন্ন ধরণের ত্রুটি (যেমন কোডিং ত্রুটি, UI ত্রুটি, পারফরম্যান্স ত্রুটি) হতে পারে, এবং এগুলির জন্য সঠিক ডিবাগিং টেকনিক এবং টুলস ব্যবহার করা প্রয়োজন।
এখানে ExtJS Debugging Techniques এবং Tools নিয়ে আলোচনা করা হবে, যা আপনাকে কোডের ত্রুটি সনাক্ত করতে এবং সমাধান করতে সাহায্য করবে।
Console logging হল সবচেয়ে সাধারণ এবং শক্তিশালী debugging টেকনিক, যা কোডের মধ্যে কোথাও ত্রুটি ঘটছে কি না, তা দেখতে সাহায্য করে। ExtJS তে, আপনি console.log()
, console.error()
, console.warn()
ইত্যাদি ব্যবহার করতে পারেন।
Ext.application({
name: 'MyApp',
launch: function() {
// Example of console log
console.log('App has been launched');
try {
// Some code that might throw an error
var sum = 10 / 0;
console.log('Sum: ' + sum); // This will log Infinity
} catch (error) {
console.error('Error occurred: ', error);
}
}
});
ব্যাখ্যা:
console.log()
: সাধারণ ইনফরমেশন প্রদর্শন করতে ব্যবহৃত হয়।console.error()
: ত্রুটি সম্পর্কে তথ্য প্রদর্শন করতে ব্যবহৃত হয়।console.warn()
: সতর্কতা সম্পর্কিত তথ্য দেখানোর জন্য ব্যবহার করা হয়।এটি ইউজার ইন্টারফেসের মধ্যে একটি নির্দিষ্ট সমস্যা বা কোডের মধ্যে কোথাও কী ঘটছে তা সহজে ট্র্যাক করতে সাহায্য করে।
ExtJS Inspector একটি পিপলিন-ভিত্তিক ডিবাগিং টুল যা ExtJS অ্যাপ্লিকেশনের DOM কাঠামো এবং কম্পোনেন্ট হায়ারার্কি পরীক্ষা করতে ব্যবহৃত হয়। এটি আপনাকে ExtJS কম্পোনেন্টের অন্তর্নিহিত স্টেট, প্রপার্টি, এবং ইভেন্টগুলি দেখতে দেয়।
ExtJS Inspector
ট্যাব দেখতে পাবেন।ExtJS Inspector
ট্যাবটি খোলার মাধ্যমে আপনি অ্যাপ্লিকেশনের সমস্ত ExtJS কম্পোনেন্ট দেখতে এবং তাদের প্রপার্টি পরীক্ষা করতে পারবেন।এটি ডায়নামিকভাবে কম্পোনেন্টের স্টেট পরীক্ষা করতে এবং UI ত্রুটি শনাক্ত করতে সহায়ক।
ডেভেলপার টুলসের মাধ্যমে breakpoints ব্যবহার করে আপনি আপনার কোডের যেকোনো লাইনে থামাতে পারেন, এবং তারপর স্টেপ বাই স্টেপ কোড এক্সিকিউশন ট্র্যাক করতে পারেন। এটি আপনাকে কোডের কার্যকারিতা বুঝতে এবং সঠিকভাবে ডিবাগ করতে সাহায্য করে।
Console Debugging:
debugger; // Add this line to set a breakpoint programmatically
এটি আপনাকে কোডের ভিতরের সমস্যা সনাক্ত করতে সাহায্য করবে।
AJAX রিকোয়েস্টগুলো ডিবাগ করার জন্য আপনি Ext.Ajax
এর ইভেন্ট হ্যান্ডলার ব্যবহার করতে পারেন এবং রিকোয়েস্ট সাপোর্ট চেক করতে পারেন। এর মাধ্যমে, আপনি API কল এবং সার্ভার রেসপন্স চেক করতে পারবেন।
Ext.Ajax.request({
url: '/api/data',
method: 'GET',
success: function(response) {
console.log('Data received: ', response.responseText);
},
failure: function(response) {
console.error('Failed to load data', response.statusText);
},
callback: function() {
console.log('Request completed');
}
});
ব্যাখ্যা:
success
: সার্ভার থেকে সফলভাবে রেসপন্স পাওয়া গেলে এটি চালিত হয়।failure
: সার্ভার রেসপন্সে ত্রুটি হলে এটি চালিত হয়।callback
: রিকোয়েস্ট শেষ হওয়ার পর এটি চালিত হয়, সফল বা ব্যর্থ যাই হোক না কেন।এটি ডিবাগিং এর মাধ্যমে API কলের রেসপন্স মনিটর করার জন্য উপকারী।
ডিবাগিং টেকনিকের সাথে সঙ্গতিপূর্ণভাবে, আপনি Testing Frameworks ব্যবহার করে কোডের ভিন্ন ভিন্ন অংশ পরীক্ষা করতে পারেন। ExtJS তে Jasmine, Siesta বা QUnit এর মতো টেস্টিং ফ্রেমওয়ার্ক দিয়ে আপনি ইউনিট টেস্ট, ইন্টিগ্রেশন টেস্ট, এবং ফাংশনাল টেস্ট লিখে ত্রুটির জন্য অ্যাপ্লিকেশন পরীক্ষা করতে পারেন।
describe('MyComponent Test', function() {
it('should have a title', function() {
var component = Ext.create('Ext.Component', {
html: 'Hello World'
});
expect(component.html).toBe('Hello World');
});
});
describe
: টেস্টের একটি গ্রুপ তৈরি করে।it
: একটি একক টেস্ট কেস যা একটি একক পরীক্ষা করে।Jasmine, Siesta বা QUnit ব্যবহার করে, আপনি আপনার ExtJS অ্যাপ্লিকেশনের প্রতিটি ইউনিটকে যাচাই করতে পারবেন এবং কোডের ত্রুটি সহজে চিহ্নিত করতে পারবেন।
console.log()
ব্যবহার করে ডিবাগিং করা, যা ত্রুটি এবং তথ্য মুদ্রণ করতে সাহায্য করে।এই টুলস এবং টেকনিকগুলি আপনাকে ExtJS অ্যাপ্লিকেশন ডিবাগিংয়ে সাহায্য করবে এবং অ্যাপ্লিকেশনের ত্রুটি চিহ্নিত করা এবং সমাধান করা সহজ করে তুলবে।
Read more